#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(int argc , char* argv[])
{
    // 这里argc必须等于4，指令需要能够拆分为四个短字符串
    // 第一个字符串为程序名
    // 第二个字符串为需要进行何种操作
    // 第三、四个字符串为操作数
    
    if(argc != 4)
    {
        // 当字符串的个数不为4时，则说明输入错误，输出操作说明
        printf("Usage:%s op[add|sub|mul|div] d1 d2\n",argv[0]);
        // argc 必定大于0，启动程序需要输入程序名
        return 1; 
    }
    
    // 将操作数从字符串转化为整形
    int d1 = atoi(argv[2]);
    int d2 = atoi(argv[3]);

    if(strcmp(argv[1],"-add") == 0)
    {
        // add , 将两个操作数相加
        printf("%d + %d = %d\n" , d1 , d2 , d1 + d2);
    }
    else if(strcmp(argv[1],"-sub") == 0)
    {
        // sub , 将两个操作数相减
        printf("%d - %d = %d\n" , d1 , d2 , d1 - d2);
    }
    else if(strcmp(argv[1],"-mul") == 0)
    {
        // mul , 将两个操作数相乘
        printf("%d * %d = %d\n" , d1 , d2 , d1 * d2);
    }
    else if(strcmp(argv[1],"-div") == 0)
    {
        // 当被除数为0时，操作错误
        if(d2 == 0)
            printf("%d / %d = error , div zero\n", d1 ,d2); 
        // div , 将两个操作数相除
        else 
            printf("%d / %d = %d\n" , d1 , d2 ,d1 / d2);
    }
    else
    {
        // 当操作选项不为上述四个操作时，则说明输入错误，输出操作说明
        printf("Use error , you should use right command line\nUsage:%s op[add|sub|mul|div] d1 d2\n",argv[0]);
    }
    return 0;
}
